home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / xpcom_obsolete / nsIFileSpec.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-05-08  |  37.7 KB  |  947 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIFileSpec.idl
  3.  */
  4.  
  5. #ifndef __gen_nsIFileSpec_h__
  6. #define __gen_nsIFileSpec_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. /* For IDL files that don't want to include root IDL files. */
  14. #ifndef NS_NO_VTABLE
  15. #define NS_NO_VTABLE
  16. #endif
  17. #include "nsFileSpec.h" // for factory method
  18. class nsIFileURL; /* forward declaration */
  19.  
  20. class nsIFilePath; /* forward declaration */
  21.  
  22. class nsIOutputStream; /* forward declaration */
  23.  
  24. class nsIInputStream; /* forward declaration */
  25.  
  26. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  27.     THIS INTERFACE IS DEPRECATED AND UNSUPPORTED!  USE |nsIFile| and |nsILocalFile|.
  28.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  29. // {A5740FA2-146E-11d3-B00D-00C04FC2E79B} 
  30. #define NS_FILESPEC_CID \
  31. { 0xa5740fa2, 0x146e, 0x11d3, { 0xb0, 0xd, 0x0, 0xc0, 0x4f, 0xc2, 0xe7, 0x9b } }
  32. #define NS_FILESPEC_CONTRACTID "@mozilla.org/filespec;1"
  33. #define NS_FILESPEC_CLASSNAME "File Spec"
  34.  
  35. /* starting interface:    nsIFileSpec */
  36. #define NS_IFILESPEC_IID_STR "37ef2e71-edef-46c7-acd9-f0b6e0b15083"
  37.  
  38. #define NS_IFILESPEC_IID \
  39.   {0x37ef2e71, 0xedef, 0x46c7, \
  40.     { 0xac, 0xd9, 0xf0, 0xb6, 0xe0, 0xb1, 0x50, 0x83 }}
  41.  
  42. class NS_NO_VTABLE nsIFileSpec : public nsISupports {
  43.  public: 
  44.  
  45.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFILESPEC_IID)
  46.  
  47.   /* void fromFileSpec ([const] in nsIFileSpec original); */
  48.   NS_IMETHOD FromFileSpec(const nsIFileSpec *original) = 0;
  49.  
  50.   /* attribute string URLString; */
  51.   NS_IMETHOD GetURLString(char * *aURLString) = 0;
  52.   NS_IMETHOD SetURLString(const char * aURLString) = 0;
  53.  
  54.   /* attribute string unixStyleFilePath; */
  55.   NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) = 0;
  56.   NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) = 0;
  57.  
  58.   /* attribute string persistentDescriptorString; */
  59.   NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) = 0;
  60.   NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) = 0;
  61.  
  62.   /* attribute string nativePath; */
  63.   NS_IMETHOD GetNativePath(char * *aNativePath) = 0;
  64.   NS_IMETHOD SetNativePath(const char * aNativePath) = 0;
  65.  
  66.   /* readonly attribute string NSPRPath; */
  67.   NS_IMETHOD GetNSPRPath(char * *aNSPRPath) = 0;
  68.  
  69.   /* void error (); */
  70.   NS_IMETHOD Error(void) = 0;
  71.  
  72.   /* boolean isValid (); */
  73.   NS_IMETHOD IsValid(PRBool *_retval) = 0;
  74.  
  75.   /* boolean failed (); */
  76.   NS_IMETHOD Failed(PRBool *_retval) = 0;
  77.  
  78.   /* attribute string leafName; */
  79.   NS_IMETHOD GetLeafName(char * *aLeafName) = 0;
  80.   NS_IMETHOD SetLeafName(const char * aLeafName) = 0;
  81.  
  82.   /* readonly attribute nsIFileSpec parent; */
  83.   NS_IMETHOD GetParent(nsIFileSpec * *aParent) = 0;
  84.  
  85.   /* readonly attribute nsIInputStream inputStream; */
  86.   NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) = 0;
  87.  
  88.   /* readonly attribute nsIOutputStream outputStream; */
  89.   NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) = 0;
  90.  
  91.   /* boolean isChildOf (in nsIFileSpec possibleParent); */
  92.   NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) = 0;
  93.  
  94.   /* [noscript] readonly attribute nsFileSpec fileSpec; */
  95.   NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) = 0;
  96.  
  97.   /* [noscript] void setFromFileSpec ([const] in nsFileSpecRef spec); */
  98.   NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) = 0;
  99.  
  100.   /* attribute string fileContents; */
  101.   NS_IMETHOD GetFileContents(char * *aFileContents) = 0;
  102.   NS_IMETHOD SetFileContents(const char * aFileContents) = 0;
  103.  
  104.   /* void makeUnique (); */
  105.   NS_IMETHOD MakeUnique(void) = 0;
  106.  
  107.   /* void makeUniqueWithSuggestedName (in string suggestedName); */
  108.   NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) = 0;
  109.  
  110.   /* void makeUniqueDir (); */
  111.   NS_IMETHOD MakeUniqueDir(void) = 0;
  112.  
  113.   /* void makeUniqueDirWithSuggestedName (in string suggestedName); */
  114.   NS_IMETHOD MakeUniqueDirWithSuggestedName(const char *suggestedName) = 0;
  115.  
  116.   /* readonly attribute unsigned long modDate; */
  117.   NS_IMETHOD GetModDate(PRUint32 *aModDate) = 0;
  118.  
  119.   /* boolean modDateChanged (in unsigned long oldStamp); */
  120.   NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) = 0;
  121.  
  122.   /* boolean isDirectory (); */
  123.   NS_IMETHOD IsDirectory(PRBool *_retval) = 0;
  124.  
  125.   /* boolean isFile (); */
  126.   NS_IMETHOD IsFile(PRBool *_retval) = 0;
  127.  
  128.   /* boolean exists (); */
  129.   NS_IMETHOD Exists(PRBool *_retval) = 0;
  130.  
  131.   /* boolean isHidden (); */
  132.   NS_IMETHOD IsHidden(PRBool *_retval) = 0;
  133.  
  134.   /* boolean equals (in nsIFileSpec spec); */
  135.   NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) = 0;
  136.  
  137.   /* readonly attribute unsigned long fileSize; */
  138.   NS_IMETHOD GetFileSize(PRUint32 *aFileSize) = 0;
  139.  
  140.   /* readonly attribute long long diskSpaceAvailable; */
  141.   NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) = 0;
  142.  
  143.   /* void appendRelativeUnixPath (in string relativePath); */
  144.   NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) = 0;
  145.  
  146.   /* void createDir (); */
  147.   NS_IMETHOD CreateDir(void) = 0;
  148.  
  149.   /* void touch (); */
  150.   NS_IMETHOD Touch(void) = 0;
  151.  
  152.   /* boolean isSymlink (); */
  153.   NS_IMETHOD IsSymlink(PRBool *_retval) = 0;
  154.  
  155.   /* void resolveSymlink (); */
  156.   NS_IMETHOD ResolveSymlink(void) = 0;
  157.  
  158.   /* void delete (in boolean recursive); */
  159.   NS_IMETHOD Delete(PRBool recursive) = 0;
  160.  
  161.   /* void truncate (in long aNewLength); */
  162.   NS_IMETHOD Truncate(PRInt32 aNewLength) = 0;
  163.  
  164.   /* void rename ([const] in string newLeafName); */
  165.   NS_IMETHOD Rename(const char *newLeafName) = 0;
  166.  
  167.   /* void copyToDir ([const] in nsIFileSpec newParentDir); */
  168.   NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) = 0;
  169.  
  170.   /* void moveToDir ([const] in nsIFileSpec newParentDir); */
  171.   NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) = 0;
  172.  
  173.   /* void execute ([const] in string args); */
  174.   NS_IMETHOD Execute(const char *args) = 0;
  175.  
  176.   /* void openStreamForReading (); */
  177.   NS_IMETHOD OpenStreamForReading(void) = 0;
  178.  
  179.   /* void openStreamForWriting (); */
  180.   NS_IMETHOD OpenStreamForWriting(void) = 0;
  181.  
  182.   /* void openStreamForReadingAndWriting (); */
  183.   NS_IMETHOD OpenStreamForReadingAndWriting(void) = 0;
  184.  
  185.   /* void closeStream (); */
  186.   NS_IMETHOD CloseStream(void) = 0;
  187.  
  188.   /* boolean isStreamOpen (); */
  189.   NS_IMETHOD IsStreamOpen(PRBool *_retval) = 0;
  190.  
  191.   /* boolean eof (); */
  192.   NS_IMETHOD Eof(PRBool *_retval) = 0;
  193.  
  194.   /* long read (inout string buffer, in long requestedCount); */
  195.   NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) = 0;
  196.  
  197.   /* void readLine (inout string line, in long bufferSize, out boolean wasTruncated); */
  198.   NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) = 0;
  199.  
  200.   /** Check eof() before each call.
  201.      * CAUTION: false result only indicates line was truncated
  202.      * to fit buffer, or an error occurred (OTHER THAN eof).
  203.      */
  204.   /* long write (in string data, in long requestedCount); */
  205.   NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) = 0;
  206.  
  207.   /* void flush (); */
  208.   NS_IMETHOD Flush(void) = 0;
  209.  
  210.   /* void seek (in long offset); */
  211.   NS_IMETHOD Seek(PRInt32 offset) = 0;
  212.  
  213.   /* long tell (); */
  214.   NS_IMETHOD Tell(PRInt32 *_retval) = 0;
  215.  
  216.   /* void endLine (); */
  217.   NS_IMETHOD EndLine(void) = 0;
  218.  
  219.   /* attribute AString unicodePath; */
  220.   NS_IMETHOD GetUnicodePath(nsAString & aUnicodePath) = 0;
  221.   NS_IMETHOD SetUnicodePath(const nsAString & aUnicodePath) = 0;
  222.  
  223. };
  224.  
  225. /* Use this macro when declaring classes that implement this interface. */
  226. #define NS_DECL_NSIFILESPEC \
  227.   NS_IMETHOD FromFileSpec(const nsIFileSpec *original); \
  228.   NS_IMETHOD GetURLString(char * *aURLString); \
  229.   NS_IMETHOD SetURLString(const char * aURLString); \
  230.   NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath); \
  231.   NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath); \
  232.   NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString); \
  233.   NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString); \
  234.   NS_IMETHOD GetNativePath(char * *aNativePath); \
  235.   NS_IMETHOD SetNativePath(const char * aNativePath); \
  236.   NS_IMETHOD GetNSPRPath(char * *aNSPRPath); \
  237.   NS_IMETHOD Error(void); \
  238.   NS_IMETHOD IsValid(PRBool *_retval); \
  239.   NS_IMETHOD Failed(PRBool *_retval); \
  240.   NS_IMETHOD GetLeafName(char * *aLeafName); \
  241.   NS_IMETHOD SetLeafName(const char * aLeafName); \
  242.   NS_IMETHOD GetParent(nsIFileSpec * *aParent); \
  243.   NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream); \
  244.   NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream); \
  245.   NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval); \
  246.   NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec); \
  247.   NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec); \
  248.   NS_IMETHOD GetFileContents(char * *aFileContents); \
  249.   NS_IMETHOD SetFileContents(const char * aFileContents); \
  250.   NS_IMETHOD MakeUnique(void); \
  251.   NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName); \
  252.   NS_IMETHOD MakeUniqueDir(void); \
  253.   NS_IMETHOD MakeUniqueDirWithSuggestedName(const char *suggestedName); \
  254.   NS_IMETHOD GetModDate(PRUint32 *aModDate); \
  255.   NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval); \
  256.   NS_IMETHOD IsDirectory(PRBool *_retval); \
  257.   NS_IMETHOD IsFile(PRBool *_retval); \
  258.   NS_IMETHOD Exists(PRBool *_retval); \
  259.   NS_IMETHOD IsHidden(PRBool *_retval); \
  260.   NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval); \
  261.   NS_IMETHOD GetFileSize(PRUint32 *aFileSize); \
  262.   NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable); \
  263.   NS_IMETHOD AppendRelativeUnixPath(const char *relativePath); \
  264.   NS_IMETHOD CreateDir(void); \
  265.   NS_IMETHOD Touch(void); \
  266.   NS_IMETHOD IsSymlink(PRBool *_retval); \
  267.   NS_IMETHOD ResolveSymlink(void); \
  268.   NS_IMETHOD Delete(PRBool recursive); \
  269.   NS_IMETHOD Truncate(PRInt32 aNewLength); \
  270.   NS_IMETHOD Rename(const char *newLeafName); \
  271.   NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir); \
  272.   NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir); \
  273.   NS_IMETHOD Execute(const char *args); \
  274.   NS_IMETHOD OpenStreamForReading(void); \
  275.   NS_IMETHOD OpenStreamForWriting(void); \
  276.   NS_IMETHOD OpenStreamForReadingAndWriting(void); \
  277.   NS_IMETHOD CloseStream(void); \
  278.   NS_IMETHOD IsStreamOpen(PRBool *_retval); \
  279.   NS_IMETHOD Eof(PRBool *_retval); \
  280.   NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval); \
  281.   NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated); \
  282.   NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval); \
  283.   NS_IMETHOD Flush(void); \
  284.   NS_IMETHOD Seek(PRInt32 offset); \
  285.   NS_IMETHOD Tell(PRInt32 *_retval); \
  286.   NS_IMETHOD EndLine(void); \
  287.   NS_IMETHOD GetUnicodePath(nsAString & aUnicodePath); \
  288.   NS_IMETHOD SetUnicodePath(const nsAString & aUnicodePath); 
  289.  
  290. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  291. #define NS_FORWARD_NSIFILESPEC(_to) \
  292.   NS_IMETHOD FromFileSpec(const nsIFileSpec *original) { return _to FromFileSpec(original); } \
  293.   NS_IMETHOD GetURLString(char * *aURLString) { return _to GetURLString(aURLString); } \
  294.   NS_IMETHOD SetURLString(const char * aURLString) { return _to SetURLString(aURLString); } \
  295.   NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) { return _to GetUnixStyleFilePath(aUnixStyleFilePath); } \
  296.   NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) { return _to SetUnixStyleFilePath(aUnixStyleFilePath); } \
  297.   NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) { return _to GetPersistentDescriptorString(aPersistentDescriptorString); } \
  298.   NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) { return _to SetPersistentDescriptorString(aPersistentDescriptorString); } \
  299.   NS_IMETHOD GetNativePath(char * *aNativePath) { return _to GetNativePath(aNativePath); } \
  300.   NS_IMETHOD SetNativePath(const char * aNativePath) { return _to SetNativePath(aNativePath); } \
  301.   NS_IMETHOD GetNSPRPath(char * *aNSPRPath) { return _to GetNSPRPath(aNSPRPath); } \
  302.   NS_IMETHOD Error(void) { return _to Error(); } \
  303.   NS_IMETHOD IsValid(PRBool *_retval) { return _to IsValid(_retval); } \
  304.   NS_IMETHOD Failed(PRBool *_retval) { return _to Failed(_retval); } \
  305.   NS_IMETHOD GetLeafName(char * *aLeafName) { return _to GetLeafName(aLeafName); } \
  306.   NS_IMETHOD SetLeafName(const char * aLeafName) { return _to SetLeafName(aLeafName); } \
  307.   NS_IMETHOD GetParent(nsIFileSpec * *aParent) { return _to GetParent(aParent); } \
  308.   NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) { return _to GetInputStream(aInputStream); } \
  309.   NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) { return _to GetOutputStream(aOutputStream); } \
  310.   NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) { return _to IsChildOf(possibleParent, _retval); } \
  311.   NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) { return _to GetFileSpec(aFileSpec); } \
  312.   NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) { return _to SetFromFileSpec(spec); } \
  313.   NS_IMETHOD GetFileContents(char * *aFileContents) { return _to GetFileContents(aFileContents); } \
  314.   NS_IMETHOD SetFileContents(const char * aFileContents) { return _to SetFileContents(aFileContents); } \
  315.   NS_IMETHOD MakeUnique(void) { return _to MakeUnique(); } \
  316.   NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) { return _to MakeUniqueWithSuggestedName(suggestedName); } \
  317.   NS_IMETHOD MakeUniqueDir(void) { return _to MakeUniqueDir(); } \
  318.   NS_IMETHOD MakeUniqueDirWithSuggestedName(const char *suggestedName) { return _to MakeUniqueDirWithSuggestedName(suggestedName); } \
  319.   NS_IMETHOD GetModDate(PRUint32 *aModDate) { return _to GetModDate(aModDate); } \
  320.   NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) { return _to ModDateChanged(oldStamp, _retval); } \
  321.   NS_IMETHOD IsDirectory(PRBool *_retval) { return _to IsDirectory(_retval); } \
  322.   NS_IMETHOD IsFile(PRBool *_retval) { return _to IsFile(_retval); } \
  323.   NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \
  324.   NS_IMETHOD IsHidden(PRBool *_retval) { return _to IsHidden(_retval); } \
  325.   NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) { return _to Equals(spec, _retval); } \
  326.   NS_IMETHOD GetFileSize(PRUint32 *aFileSize) { return _to GetFileSize(aFileSize); } \
  327.   NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) { return _to GetDiskSpaceAvailable(aDiskSpaceAvailable); } \
  328.   NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) { return _to AppendRelativeUnixPath(relativePath); } \
  329.   NS_IMETHOD CreateDir(void) { return _to CreateDir(); } \
  330.   NS_IMETHOD Touch(void) { return _to Touch(); } \
  331.   NS_IMETHOD IsSymlink(PRBool *_retval) { return _to IsSymlink(_retval); } \
  332.   NS_IMETHOD ResolveSymlink(void) { return _to ResolveSymlink(); } \
  333.   NS_IMETHOD Delete(PRBool recursive) { return _to Delete(recursive); } \
  334.   NS_IMETHOD Truncate(PRInt32 aNewLength) { return _to Truncate(aNewLength); } \
  335.   NS_IMETHOD Rename(const char *newLeafName) { return _to Rename(newLeafName); } \
  336.   NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) { return _to CopyToDir(newParentDir); } \
  337.   NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) { return _to MoveToDir(newParentDir); } \
  338.   NS_IMETHOD Execute(const char *args) { return _to Execute(args); } \
  339.   NS_IMETHOD OpenStreamForReading(void) { return _to OpenStreamForReading(); } \
  340.   NS_IMETHOD OpenStreamForWriting(void) { return _to OpenStreamForWriting(); } \
  341.   NS_IMETHOD OpenStreamForReadingAndWriting(void) { return _to OpenStreamForReadingAndWriting(); } \
  342.   NS_IMETHOD CloseStream(void) { return _to CloseStream(); } \
  343.   NS_IMETHOD IsStreamOpen(PRBool *_retval) { return _to IsStreamOpen(_retval); } \
  344.   NS_IMETHOD Eof(PRBool *_retval) { return _to Eof(_retval); } \
  345.   NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) { return _to Read(buffer, requestedCount, _retval); } \
  346.   NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) { return _to ReadLine(line, bufferSize, wasTruncated); } \
  347.   NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) { return _to Write(data, requestedCount, _retval); } \
  348.   NS_IMETHOD Flush(void) { return _to Flush(); } \
  349.   NS_IMETHOD Seek(PRInt32 offset) { return _to Seek(offset); } \
  350.   NS_IMETHOD Tell(PRInt32 *_retval) { return _to Tell(_retval); } \
  351.   NS_IMETHOD EndLine(void) { return _to EndLine(); } \
  352.   NS_IMETHOD GetUnicodePath(nsAString & aUnicodePath) { return _to GetUnicodePath(aUnicodePath); } \
  353.   NS_IMETHOD SetUnicodePath(const nsAString & aUnicodePath) { return _to SetUnicodePath(aUnicodePath); } 
  354.  
  355. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  356. #define NS_FORWARD_SAFE_NSIFILESPEC(_to) \
  357.   NS_IMETHOD FromFileSpec(const nsIFileSpec *original) { return !_to ? NS_ERROR_NULL_POINTER : _to->FromFileSpec(original); } \
  358.   NS_IMETHOD GetURLString(char * *aURLString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURLString(aURLString); } \
  359.   NS_IMETHOD SetURLString(const char * aURLString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetURLString(aURLString); } \
  360.   NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnixStyleFilePath(aUnixStyleFilePath); } \
  361.   NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUnixStyleFilePath(aUnixStyleFilePath); } \
  362.   NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersistentDescriptorString(aPersistentDescriptorString); } \
  363.   NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPersistentDescriptorString(aPersistentDescriptorString); } \
  364.   NS_IMETHOD GetNativePath(char * *aNativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativePath(aNativePath); } \
  365.   NS_IMETHOD SetNativePath(const char * aNativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNativePath(aNativePath); } \
  366.   NS_IMETHOD GetNSPRPath(char * *aNSPRPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNSPRPath(aNSPRPath); } \
  367.   NS_IMETHOD Error(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Error(); } \
  368.   NS_IMETHOD IsValid(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsValid(_retval); } \
  369.   NS_IMETHOD Failed(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Failed(_retval); } \
  370.   NS_IMETHOD GetLeafName(char * *aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLeafName(aLeafName); } \
  371.   NS_IMETHOD SetLeafName(const char * aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLeafName(aLeafName); } \
  372.   NS_IMETHOD GetParent(nsIFileSpec * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  373.   NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInputStream(aInputStream); } \
  374.   NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOutputStream(aOutputStream); } \
  375.   NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsChildOf(possibleParent, _retval); } \
  376.   NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSpec(aFileSpec); } \
  377.   NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFromFileSpec(spec); } \
  378.   NS_IMETHOD GetFileContents(char * *aFileContents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileContents(aFileContents); } \
  379.   NS_IMETHOD SetFileContents(const char * aFileContents) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFileContents(aFileContents); } \
  380.   NS_IMETHOD MakeUnique(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUnique(); } \
  381.   NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUniqueWithSuggestedName(suggestedName); } \
  382.   NS_IMETHOD MakeUniqueDir(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUniqueDir(); } \
  383.   NS_IMETHOD MakeUniqueDirWithSuggestedName(const char *suggestedName) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUniqueDirWithSuggestedName(suggestedName); } \
  384.   NS_IMETHOD GetModDate(PRUint32 *aModDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModDate(aModDate); } \
  385.   NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModDateChanged(oldStamp, _retval); } \
  386.   NS_IMETHOD IsDirectory(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDirectory(_retval); } \
  387.   NS_IMETHOD IsFile(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFile(_retval); } \
  388.   NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(_retval); } \
  389.   NS_IMETHOD IsHidden(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsHidden(_retval); } \
  390.   NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(spec, _retval); } \
  391.   NS_IMETHOD GetFileSize(PRUint32 *aFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSize(aFileSize); } \
  392.   NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDiskSpaceAvailable(aDiskSpaceAvailable); } \
  393.   NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->AppendRelativeUnixPath(relativePath); } \
  394.   NS_IMETHOD CreateDir(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDir(); } \
  395.   NS_IMETHOD Touch(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Touch(); } \
  396.   NS_IMETHOD IsSymlink(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSymlink(_retval); } \
  397.   NS_IMETHOD ResolveSymlink(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResolveSymlink(); } \
  398.   NS_IMETHOD Delete(PRBool recursive) { return !_to ? NS_ERROR_NULL_POINTER : _to->Delete(recursive); } \
  399.   NS_IMETHOD Truncate(PRInt32 aNewLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->Truncate(aNewLength); } \
  400.   NS_IMETHOD Rename(const char *newLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->Rename(newLeafName); } \
  401.   NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToDir(newParentDir); } \
  402.   NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveToDir(newParentDir); } \
  403.   NS_IMETHOD Execute(const char *args) { return !_to ? NS_ERROR_NULL_POINTER : _to->Execute(args); } \
  404.   NS_IMETHOD OpenStreamForReading(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForReading(); } \
  405.   NS_IMETHOD OpenStreamForWriting(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForWriting(); } \
  406.   NS_IMETHOD OpenStreamForReadingAndWriting(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForReadingAndWriting(); } \
  407.   NS_IMETHOD CloseStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseStream(); } \
  408.   NS_IMETHOD IsStreamOpen(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsStreamOpen(_retval); } \
  409.   NS_IMETHOD Eof(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Eof(_retval); } \
  410.   NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(buffer, requestedCount, _retval); } \
  411.   NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadLine(line, bufferSize, wasTruncated); } \
  412.   NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(data, requestedCount, _retval); } \
  413.   NS_IMETHOD Flush(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Flush(); } \
  414.   NS_IMETHOD Seek(PRInt32 offset) { return !_to ? NS_ERROR_NULL_POINTER : _to->Seek(offset); } \
  415.   NS_IMETHOD Tell(PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Tell(_retval); } \
  416.   NS_IMETHOD EndLine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndLine(); } \
  417.   NS_IMETHOD GetUnicodePath(nsAString & aUnicodePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnicodePath(aUnicodePath); } \
  418.   NS_IMETHOD SetUnicodePath(const nsAString & aUnicodePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUnicodePath(aUnicodePath); } 
  419.  
  420. #if 0
  421. /* Use the code below as a template for the implementation class for this interface. */
  422.  
  423. /* Header file */
  424. class nsFileSpec : public nsIFileSpec
  425. {
  426. public:
  427.   NS_DECL_ISUPPORTS
  428.   NS_DECL_NSIFILESPEC
  429.  
  430.   nsFileSpec();
  431.  
  432. private:
  433.   ~nsFileSpec();
  434.  
  435. protected:
  436.   /* additional members */
  437. };
  438.  
  439. /* Implementation file */
  440. NS_IMPL_ISUPPORTS1(nsFileSpec, nsIFileSpec)
  441.  
  442. nsFileSpec::nsFileSpec()
  443. {
  444.   /* member initializers and constructor code */
  445. }
  446.  
  447. nsFileSpec::~nsFileSpec()
  448. {
  449.   /* destructor code */
  450. }
  451.  
  452. /* void fromFileSpec ([const] in nsIFileSpec original); */
  453. NS_IMETHODIMP nsFileSpec::FromFileSpec(const nsIFileSpec *original)
  454. {
  455.     return NS_ERROR_NOT_IMPLEMENTED;
  456. }
  457.  
  458. /* attribute string URLString; */
  459. NS_IMETHODIMP nsFileSpec::GetURLString(char * *aURLString)
  460. {
  461.     return NS_ERROR_NOT_IMPLEMENTED;
  462. }
  463. NS_IMETHODIMP nsFileSpec::SetURLString(const char * aURLString)
  464. {
  465.     return NS_ERROR_NOT_IMPLEMENTED;
  466. }
  467.  
  468. /* attribute string unixStyleFilePath; */
  469. NS_IMETHODIMP nsFileSpec::GetUnixStyleFilePath(char * *aUnixStyleFilePath)
  470. {
  471.     return NS_ERROR_NOT_IMPLEMENTED;
  472. }
  473. NS_IMETHODIMP nsFileSpec::SetUnixStyleFilePath(const char * aUnixStyleFilePath)
  474. {
  475.     return NS_ERROR_NOT_IMPLEMENTED;
  476. }
  477.  
  478. /* attribute string persistentDescriptorString; */
  479. NS_IMETHODIMP nsFileSpec::GetPersistentDescriptorString(char * *aPersistentDescriptorString)
  480. {
  481.     return NS_ERROR_NOT_IMPLEMENTED;
  482. }
  483. NS_IMETHODIMP nsFileSpec::SetPersistentDescriptorString(const char * aPersistentDescriptorString)
  484. {
  485.     return NS_ERROR_NOT_IMPLEMENTED;
  486. }
  487.  
  488. /* attribute string nativePath; */
  489. NS_IMETHODIMP nsFileSpec::GetNativePath(char * *aNativePath)
  490. {
  491.     return NS_ERROR_NOT_IMPLEMENTED;
  492. }
  493. NS_IMETHODIMP nsFileSpec::SetNativePath(const char * aNativePath)
  494. {
  495.     return NS_ERROR_NOT_IMPLEMENTED;
  496. }
  497.  
  498. /* readonly attribute string NSPRPath; */
  499. NS_IMETHODIMP nsFileSpec::GetNSPRPath(char * *aNSPRPath)
  500. {
  501.     return NS_ERROR_NOT_IMPLEMENTED;
  502. }
  503.  
  504. /* void error (); */
  505. NS_IMETHODIMP nsFileSpec::Error()
  506. {
  507.     return NS_ERROR_NOT_IMPLEMENTED;
  508. }
  509.  
  510. /* boolean isValid (); */
  511. NS_IMETHODIMP nsFileSpec::IsValid(PRBool *_retval)
  512. {
  513.     return NS_ERROR_NOT_IMPLEMENTED;
  514. }
  515.  
  516. /* boolean failed (); */
  517. NS_IMETHODIMP nsFileSpec::Failed(PRBool *_retval)
  518. {
  519.     return NS_ERROR_NOT_IMPLEMENTED;
  520. }
  521.  
  522. /* attribute string leafName; */
  523. NS_IMETHODIMP nsFileSpec::GetLeafName(char * *aLeafName)
  524. {
  525.     return NS_ERROR_NOT_IMPLEMENTED;
  526. }
  527. NS_IMETHODIMP nsFileSpec::SetLeafName(const char * aLeafName)
  528. {
  529.     return NS_ERROR_NOT_IMPLEMENTED;
  530. }
  531.  
  532. /* readonly attribute nsIFileSpec parent; */
  533. NS_IMETHODIMP nsFileSpec::GetParent(nsIFileSpec * *aParent)
  534. {
  535.     return NS_ERROR_NOT_IMPLEMENTED;
  536. }
  537.  
  538. /* readonly attribute nsIInputStream inputStream; */
  539. NS_IMETHODIMP nsFileSpec::GetInputStream(nsIInputStream * *aInputStream)
  540. {
  541.     return NS_ERROR_NOT_IMPLEMENTED;
  542. }
  543.  
  544. /* readonly attribute nsIOutputStream outputStream; */
  545. NS_IMETHODIMP nsFileSpec::GetOutputStream(nsIOutputStream * *aOutputStream)
  546. {
  547.     return NS_ERROR_NOT_IMPLEMENTED;
  548. }
  549.  
  550. /* boolean isChildOf (in nsIFileSpec possibleParent); */
  551. NS_IMETHODIMP nsFileSpec::IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval)
  552. {
  553.     return NS_ERROR_NOT_IMPLEMENTED;
  554. }
  555.  
  556. /* [noscript] readonly attribute nsFileSpec fileSpec; */
  557. NS_IMETHODIMP nsFileSpec::GetFileSpec(nsFileSpec *aFileSpec)
  558. {
  559.     return NS_ERROR_NOT_IMPLEMENTED;
  560. }
  561.  
  562. /* [noscript] void setFromFileSpec ([const] in nsFileSpecRef spec); */
  563. NS_IMETHODIMP nsFileSpec::SetFromFileSpec(const nsFileSpec & spec)
  564. {
  565.     return NS_ERROR_NOT_IMPLEMENTED;
  566. }
  567.  
  568. /* attribute string fileContents; */
  569. NS_IMETHODIMP nsFileSpec::GetFileContents(char * *aFileContents)
  570. {
  571.     return NS_ERROR_NOT_IMPLEMENTED;
  572. }
  573. NS_IMETHODIMP nsFileSpec::SetFileContents(const char * aFileContents)
  574. {
  575.     return NS_ERROR_NOT_IMPLEMENTED;
  576. }
  577.  
  578. /* void makeUnique (); */
  579. NS_IMETHODIMP nsFileSpec::MakeUnique()
  580. {
  581.     return NS_ERROR_NOT_IMPLEMENTED;
  582. }
  583.  
  584. /* void makeUniqueWithSuggestedName (in string suggestedName); */
  585. NS_IMETHODIMP nsFileSpec::MakeUniqueWithSuggestedName(const char *suggestedName)
  586. {
  587.     return NS_ERROR_NOT_IMPLEMENTED;
  588. }
  589.  
  590. /* void makeUniqueDir (); */
  591. NS_IMETHODIMP nsFileSpec::MakeUniqueDir()
  592. {
  593.     return NS_ERROR_NOT_IMPLEMENTED;
  594. }
  595.  
  596. /* void makeUniqueDirWithSuggestedName (in string suggestedName); */
  597. NS_IMETHODIMP nsFileSpec::MakeUniqueDirWithSuggestedName(const char *suggestedName)
  598. {
  599.     return NS_ERROR_NOT_IMPLEMENTED;
  600. }
  601.  
  602. /* readonly attribute unsigned long modDate; */
  603. NS_IMETHODIMP nsFileSpec::GetModDate(PRUint32 *aModDate)
  604. {
  605.     return NS_ERROR_NOT_IMPLEMENTED;
  606. }
  607.  
  608. /* boolean modDateChanged (in unsigned long oldStamp); */
  609. NS_IMETHODIMP nsFileSpec::ModDateChanged(PRUint32 oldStamp, PRBool *_retval)
  610. {
  611.     return NS_ERROR_NOT_IMPLEMENTED;
  612. }
  613.  
  614. /* boolean isDirectory (); */
  615. NS_IMETHODIMP nsFileSpec::IsDirectory(PRBool *_retval)
  616. {
  617.     return NS_ERROR_NOT_IMPLEMENTED;
  618. }
  619.  
  620. /* boolean isFile (); */
  621. NS_IMETHODIMP nsFileSpec::IsFile(PRBool *_retval)
  622. {
  623.     return NS_ERROR_NOT_IMPLEMENTED;
  624. }
  625.  
  626. /* boolean exists (); */
  627. NS_IMETHODIMP nsFileSpec::Exists(PRBool *_retval)
  628. {
  629.     return NS_ERROR_NOT_IMPLEMENTED;
  630. }
  631.  
  632. /* boolean isHidden (); */
  633. NS_IMETHODIMP nsFileSpec::IsHidden(PRBool *_retval)
  634. {
  635.     return NS_ERROR_NOT_IMPLEMENTED;
  636. }
  637.  
  638. /* boolean equals (in nsIFileSpec spec); */
  639. NS_IMETHODIMP nsFileSpec::Equals(nsIFileSpec *spec, PRBool *_retval)
  640. {
  641.     return NS_ERROR_NOT_IMPLEMENTED;
  642. }
  643.  
  644. /* readonly attribute unsigned long fileSize; */
  645. NS_IMETHODIMP nsFileSpec::GetFileSize(PRUint32 *aFileSize)
  646. {
  647.     return NS_ERROR_NOT_IMPLEMENTED;
  648. }
  649.  
  650. /* readonly attribute long long diskSpaceAvailable; */
  651. NS_IMETHODIMP nsFileSpec::GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable)
  652. {
  653.     return NS_ERROR_NOT_IMPLEMENTED;
  654. }
  655.  
  656. /* void appendRelativeUnixPath (in string relativePath); */
  657. NS_IMETHODIMP nsFileSpec::AppendRelativeUnixPath(const char *relativePath)
  658. {
  659.     return NS_ERROR_NOT_IMPLEMENTED;
  660. }
  661.  
  662. /* void createDir (); */
  663. NS_IMETHODIMP nsFileSpec::CreateDir()
  664. {
  665.     return NS_ERROR_NOT_IMPLEMENTED;
  666. }
  667.  
  668. /* void touch (); */
  669. NS_IMETHODIMP nsFileSpec::Touch()
  670. {
  671.     return NS_ERROR_NOT_IMPLEMENTED;
  672. }
  673.  
  674. /* boolean isSymlink (); */
  675. NS_IMETHODIMP nsFileSpec::IsSymlink(PRBool *_retval)
  676. {
  677.     return NS_ERROR_NOT_IMPLEMENTED;
  678. }
  679.  
  680. /* void resolveSymlink (); */
  681. NS_IMETHODIMP nsFileSpec::ResolveSymlink()
  682. {
  683.     return NS_ERROR_NOT_IMPLEMENTED;
  684. }
  685.  
  686. /* void delete (in boolean recursive); */
  687. NS_IMETHODIMP nsFileSpec::Delete(PRBool recursive)
  688. {
  689.     return NS_ERROR_NOT_IMPLEMENTED;
  690. }
  691.  
  692. /* void truncate (in long aNewLength); */
  693. NS_IMETHODIMP nsFileSpec::Truncate(PRInt32 aNewLength)
  694. {
  695.     return NS_ERROR_NOT_IMPLEMENTED;
  696. }
  697.  
  698. /* void rename ([const] in string newLeafName); */
  699. NS_IMETHODIMP nsFileSpec::Rename(const char *newLeafName)
  700. {
  701.     return NS_ERROR_NOT_IMPLEMENTED;
  702. }
  703.  
  704. /* void copyToDir ([const] in nsIFileSpec newParentDir); */
  705. NS_IMETHODIMP nsFileSpec::CopyToDir(const nsIFileSpec *newParentDir)
  706. {
  707.     return NS_ERROR_NOT_IMPLEMENTED;
  708. }
  709.  
  710. /* void moveToDir ([const] in nsIFileSpec newParentDir); */
  711. NS_IMETHODIMP nsFileSpec::MoveToDir(const nsIFileSpec *newParentDir)
  712. {
  713.     return NS_ERROR_NOT_IMPLEMENTED;
  714. }
  715.  
  716. /* void execute ([const] in string args); */
  717. NS_IMETHODIMP nsFileSpec::Execute(const char *args)
  718. {
  719.     return NS_ERROR_NOT_IMPLEMENTED;
  720. }
  721.  
  722. /* void openStreamForReading (); */
  723. NS_IMETHODIMP nsFileSpec::OpenStreamForReading()
  724. {
  725.     return NS_ERROR_NOT_IMPLEMENTED;
  726. }
  727.  
  728. /* void openStreamForWriting (); */
  729. NS_IMETHODIMP nsFileSpec::OpenStreamForWriting()
  730. {
  731.     return NS_ERROR_NOT_IMPLEMENTED;
  732. }
  733.  
  734. /* void openStreamForReadingAndWriting (); */
  735. NS_IMETHODIMP nsFileSpec::OpenStreamForReadingAndWriting()
  736. {
  737.     return NS_ERROR_NOT_IMPLEMENTED;
  738. }
  739.  
  740. /* void closeStream (); */
  741. NS_IMETHODIMP nsFileSpec::CloseStream()
  742. {
  743.     return NS_ERROR_NOT_IMPLEMENTED;
  744. }
  745.  
  746. /* boolean isStreamOpen (); */
  747. NS_IMETHODIMP nsFileSpec::IsStreamOpen(PRBool *_retval)
  748. {
  749.     return NS_ERROR_NOT_IMPLEMENTED;
  750. }
  751.  
  752. /* boolean eof (); */
  753. NS_IMETHODIMP nsFileSpec::Eof(PRBool *_retval)
  754. {
  755.     return NS_ERROR_NOT_IMPLEMENTED;
  756. }
  757.  
  758. /* long read (inout string buffer, in long requestedCount); */
  759. NS_IMETHODIMP nsFileSpec::Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval)
  760. {
  761.     return NS_ERROR_NOT_IMPLEMENTED;
  762. }
  763.  
  764. /* void readLine (inout string line, in long bufferSize, out boolean wasTruncated); */
  765. NS_IMETHODIMP nsFileSpec::ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated)
  766. {
  767.     return NS_ERROR_NOT_IMPLEMENTED;
  768. }
  769.  
  770. /* long write (in string data, in long requestedCount); */
  771. NS_IMETHODIMP nsFileSpec::Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval)
  772. {
  773.     return NS_ERROR_NOT_IMPLEMENTED;
  774. }
  775.  
  776. /* void flush (); */
  777. NS_IMETHODIMP nsFileSpec::Flush()
  778. {
  779.     return NS_ERROR_NOT_IMPLEMENTED;
  780. }
  781.  
  782. /* void seek (in long offset); */
  783. NS_IMETHODIMP nsFileSpec::Seek(PRInt32 offset)
  784. {
  785.     return NS_ERROR_NOT_IMPLEMENTED;
  786. }
  787.  
  788. /* long tell (); */
  789. NS_IMETHODIMP nsFileSpec::Tell(PRInt32 *_retval)
  790. {
  791.     return NS_ERROR_NOT_IMPLEMENTED;
  792. }
  793.  
  794. /* void endLine (); */
  795. NS_IMETHODIMP nsFileSpec::EndLine()
  796. {
  797.     return NS_ERROR_NOT_IMPLEMENTED;
  798. }
  799.  
  800. /* attribute AString unicodePath; */
  801. NS_IMETHODIMP nsFileSpec::GetUnicodePath(nsAString & aUnicodePath)
  802. {
  803.     return NS_ERROR_NOT_IMPLEMENTED;
  804. }
  805. NS_IMETHODIMP nsFileSpec::SetUnicodePath(const nsAString & aUnicodePath)
  806. {
  807.     return NS_ERROR_NOT_IMPLEMENTED;
  808. }
  809.  
  810. /* End of implementation class template. */
  811. #endif
  812.  
  813. // {a3020981-2018-11d3-915f-a957795b7ebc}
  814. #define NS_DIRECTORYITERATOR_CID \
  815. { 0xa3020981, 0x2018, 0x11d3, { 0x91, 0x5f, 0xa9, 0x57, 0x79, 0x5b, 0x7e, 0xbc } }
  816. #define NS_DIRECTORYITERATOR_CONTRACTID "@mozilla.org/directoryiterator;1"
  817. #define NS_DIRECTORYITERATOR_CLASSNAME "nsIDirectoryIterator"
  818.  
  819. /* starting interface:    nsIDirectoryIterator */
  820. #define NS_IDIRECTORYITERATOR_IID_STR "d8c0a083-0868-11d3-915f-d9d889d48e3c"
  821.  
  822. #define NS_IDIRECTORYITERATOR_IID \
  823.   {0xd8c0a083, 0x0868, 0x11d3, \
  824.     { 0x91, 0x5f, 0xd9, 0xd8, 0x89, 0xd4, 0x8e, 0x3c }}
  825.  
  826. class NS_NO_VTABLE nsIDirectoryIterator : public nsISupports {
  827.  public: 
  828.  
  829.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDIRECTORYITERATOR_IID)
  830.  
  831.   /* void init (in nsIFileSpec parent, in boolean resolveSymlink); */
  832.   NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) = 0;
  833.  
  834.   /* boolean exists (); */
  835.   NS_IMETHOD Exists(PRBool *_retval) = 0;
  836.  
  837.   /* void next (); */
  838.   NS_IMETHOD Next(void) = 0;
  839.  
  840.   /* readonly attribute nsIFileSpec currentSpec; */
  841.   NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) = 0;
  842.  
  843. };
  844.  
  845. /* Use this macro when declaring classes that implement this interface. */
  846. #define NS_DECL_NSIDIRECTORYITERATOR \
  847.   NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink); \
  848.   NS_IMETHOD Exists(PRBool *_retval); \
  849.   NS_IMETHOD Next(void); \
  850.   NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec); 
  851.  
  852. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  853. #define NS_FORWARD_NSIDIRECTORYITERATOR(_to) \
  854.   NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) { return _to Init(parent, resolveSymlink); } \
  855.   NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \
  856.   NS_IMETHOD Next(void) { return _to Next(); } \
  857.   NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) { return _to GetCurrentSpec(aCurrentSpec); } 
  858.  
  859. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  860. #define NS_FORWARD_SAFE_NSIDIRECTORYITERATOR(_to) \
  861.   NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(parent, resolveSymlink); } \
  862.   NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(_retval); } \
  863.   NS_IMETHOD Next(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Next(); } \
  864.   NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentSpec(aCurrentSpec); } 
  865.  
  866. #if 0
  867. /* Use the code below as a template for the implementation class for this interface. */
  868.  
  869. /* Header file */
  870. class nsDirectoryIterator : public nsIDirectoryIterator
  871. {
  872. public:
  873.   NS_DECL_ISUPPORTS
  874.   NS_DECL_NSIDIRECTORYITERATOR
  875.  
  876.   nsDirectoryIterator();
  877.  
  878. private:
  879.   ~nsDirectoryIterator();
  880.  
  881. protected:
  882.   /* additional members */
  883. };
  884.  
  885. /* Implementation file */
  886. NS_IMPL_ISUPPORTS1(nsDirectoryIterator, nsIDirectoryIterator)
  887.  
  888. nsDirectoryIterator::nsDirectoryIterator()
  889. {
  890.   /* member initializers and constructor code */
  891. }
  892.  
  893. nsDirectoryIterator::~nsDirectoryIterator()
  894. {
  895.   /* destructor code */
  896. }
  897.  
  898. /* void init (in nsIFileSpec parent, in boolean resolveSymlink); */
  899. NS_IMETHODIMP nsDirectoryIterator::Init(nsIFileSpec *parent, PRBool resolveSymlink)
  900. {
  901.     return NS_ERROR_NOT_IMPLEMENTED;
  902. }
  903.  
  904. /* boolean exists (); */
  905. NS_IMETHODIMP nsDirectoryIterator::Exists(PRBool *_retval)
  906. {
  907.     return NS_ERROR_NOT_IMPLEMENTED;
  908. }
  909.  
  910. /* void next (); */
  911. NS_IMETHODIMP nsDirectoryIterator::Next()
  912. {
  913.     return NS_ERROR_NOT_IMPLEMENTED;
  914. }
  915.  
  916. /* readonly attribute nsIFileSpec currentSpec; */
  917. NS_IMETHODIMP nsDirectoryIterator::GetCurrentSpec(nsIFileSpec * *aCurrentSpec)
  918. {
  919.     return NS_ERROR_NOT_IMPLEMENTED;
  920. }
  921.  
  922. /* End of implementation class template. */
  923. #endif
  924.  
  925. // Factory methods if you link with xpcom
  926. NS_COM_OBSOLETE nsresult NS_NewFileSpecWithSpec(const nsFileSpec& aSrcFileSpec, nsIFileSpec **result);
  927. NS_COM_OBSOLETE nsresult NS_NewFileSpec(nsIFileSpec** result);
  928. NS_COM_OBSOLETE nsresult NS_NewDirectoryIterator(nsIDirectoryIterator** result);
  929. // Convert from nsIFile to nsIFileSpec
  930. //
  931. // XXX This function is here only to assist with the migration from nsIFileSpec
  932. // to nsIFile.  This function will dissappear in future mozilla releases.
  933. //
  934. // ...ripped from nsPrefService.cpp:
  935. //
  936. //   "So discouraged is the use of nsIFileSpec, nobody wanted to have this routine be
  937. //    public - It might lead to continued use of nsIFileSpec. Right now, [mozilla] has
  938. //    such a need for it, here it is. Let's stop having to use it though."
  939. //
  940. NS_COM_OBSOLETE nsresult NS_NewFileSpecFromIFile(nsIFile *aFile, nsIFileSpec **result);
  941. #define NS_BOOL_ACCESSOR(_method) { PRBool yes; return NS_SUCCEEDED(f->_method(&yes)) && yes; }
  942. inline PRBool Exists(nsIFileSpec* f) NS_BOOL_ACCESSOR(Exists)
  943. inline PRBool Exists(nsIDirectoryIterator* f) NS_BOOL_ACCESSOR(Exists)
  944. inline PRBool IsDirectory(nsIFileSpec* f) NS_BOOL_ACCESSOR(IsDirectory)
  945.  
  946. #endif /* __gen_nsIFileSpec_h__ */
  947.